<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Object静态方法</title>
</head>
<body>
<p>
    Object 是内置的构造函数，用于创建普通对象 <br>
    虽然可以使用Object创建对象, 但我们一般很少使用 <br>
    基本上都是直接,使用字面量方式声明对象，而不是 Object 构造函数. 所以 Object创建对象 了解下就行
</p>
<p>
    这里介绍三个常用静态方法（静态方法就是只有构造函数Object可以调用的） <br>
    1. Object.keys 静态方法获取对象中所有属性（键） <br>
    返回的是一个数组 <br>
    <br>
    2. Object.values 静态方法获取对象中所有属性值 <br>
    返回的是一个数组 <br>
    <br>
    3. Object.assign 静态方法常用于对象拷贝 <br>
    使用的场景经常是, 给对象添加属性
</p>
<hr>

<pre style="font-size: 20px;">
    总结:
1. 什么是静态方法？
    只能给构造函数使用的方法 比如 Object.keys()
2. Object.keys()方法的作用是什么 ？
    获取对象中所有属性（键）
3. Object.values()方法的作用是什么 ？
    获取对象中所有属性值（值
</pre>
<hr>

<script>
    // 使用Object, 创建对象
    const 对象 = new Object({姓名: '孙新罡', 年龄: 38})
    for (let 对象Key in 对象) {
        console.log(对象Key)
        console.log(对象[对象Key])
        // 依次输出信息, 相当于遍历对象
    }


    console.log('--------三个常用静态方法---------')
    // 1. Object.keys 获得所有的属性名
    console.log(Object.keys(对象))  // 返回数组 ['姓名', '年龄']

    // 2. Object.values 获得所有的属性值
    console.log(Object.values(对象))  // 返回数组 ['孙新罡', 38]

    console.log('--------------------')
    // 3. Object.assign 把一个对象的拷贝,给另外一个对象
    const 对象副本 = {} // 建一个,空对象
    Object.assign(对象副本, 对象) // 把对象的内容,拷贝给另一个对象
    console.log(对象副本) // 控制台输出,新对象

    // Object.assign 也可以给对象添加属性
    Object.assign(对象副本, {性别: '男'}) // 给对象,添加新的属性
    console.log(对象副本)
</script>


</body>
</html>